1. Библиотеки


In [ ]:
sin(45)

In [2]:
import math
math.sin(0)


Out[2]:
0.0

In [3]:
import math as m
m.cos(0)


Out[3]:
1.0

In [4]:
math.pi


Out[4]:
3.141592653589793

In [6]:
for x in range(0, -7, 0.5):
    print (x)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-68d4081a1848> in <module>()
----> 1 for x in range(0, -7, 0.5):
      2     print (x)

TypeError: 'float' object cannot be interpreted as an integer

In [66]:
help(math)


Help on built-in module math:

NAME
    math

DESCRIPTION
    This module is always available.  It provides access to the
    mathematical functions defined by the C standard.

FUNCTIONS
    acos(...)
        acos(x)
        
        Return the arc cosine (measured in radians) of x.
    
    acosh(...)
        acosh(x)
        
        Return the inverse hyperbolic cosine of x.
    
    asin(...)
        asin(x)
        
        Return the arc sine (measured in radians) of x.
    
    asinh(...)
        asinh(x)
        
        Return the inverse hyperbolic sine of x.
    
    atan(...)
        atan(x)
        
        Return the arc tangent (measured in radians) of x.
    
    atan2(...)
        atan2(y, x)
        
        Return the arc tangent (measured in radians) of y/x.
        Unlike atan(y/x), the signs of both x and y are considered.
    
    atanh(...)
        atanh(x)
        
        Return the inverse hyperbolic tangent of x.
    
    ceil(...)
        ceil(x)
        
        Return the ceiling of x as an Integral.
        This is the smallest integer >= x.
    
    copysign(...)
        copysign(x, y)
        
        Return a float with the magnitude (absolute value) of x but the sign 
        of y. On platforms that support signed zeros, copysign(1.0, -0.0) 
        returns -1.0.
    
    cos(...)
        cos(x)
        
        Return the cosine of x (measured in radians).
    
    cosh(...)
        cosh(x)
        
        Return the hyperbolic cosine of x.
    
    degrees(...)
        degrees(x)
        
        Convert angle x from radians to degrees.
    
    erf(...)
        erf(x)
        
        Error function at x.
    
    erfc(...)
        erfc(x)
        
        Complementary error function at x.
    
    exp(...)
        exp(x)
        
        Return e raised to the power of x.
    
    expm1(...)
        expm1(x)
        
        Return exp(x)-1.
        This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x.
    
    fabs(...)
        fabs(x)
        
        Return the absolute value of the float x.
    
    factorial(...)
        factorial(x) -> Integral
        
        Find x!. Raise a ValueError if x is negative or non-integral.
    
    floor(...)
        floor(x)
        
        Return the floor of x as an Integral.
        This is the largest integer <= x.
    
    fmod(...)
        fmod(x, y)
        
        Return fmod(x, y), according to platform C.  x % y may differ.
    
    frexp(...)
        frexp(x)
        
        Return the mantissa and exponent of x, as pair (m, e).
        m is a float and e is an int, such that x = m * 2.**e.
        If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.
    
    fsum(...)
        fsum(iterable)
        
        Return an accurate floating point sum of values in the iterable.
        Assumes IEEE-754 floating point arithmetic.
    
    gamma(...)
        gamma(x)
        
        Gamma function at x.
    
    gcd(...)
        gcd(x, y) -> int
        greatest common divisor of x and y
    
    hypot(...)
        hypot(x, y)
        
        Return the Euclidean distance, sqrt(x*x + y*y).
    
    isclose(...)
        isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0) -> bool
        
        Determine whether two floating point numbers are close in value.
        
           rel_tol
               maximum difference for being considered "close", relative to the
               magnitude of the input values
            abs_tol
               maximum difference for being considered "close", regardless of the
               magnitude of the input values
        
        Return True if a is close in value to b, and False otherwise.
        
        For the values to be considered close, the difference between them
        must be smaller than at least one of the tolerances.
        
        -inf, inf and NaN behave similarly to the IEEE 754 Standard.  That
        is, NaN is not close to anything, even itself.  inf and -inf are
        only close to themselves.
    
    isfinite(...)
        isfinite(x) -> bool
        
        Return True if x is neither an infinity nor a NaN, and False otherwise.
    
    isinf(...)
        isinf(x) -> bool
        
        Return True if x is a positive or negative infinity, and False otherwise.
    
    isnan(...)
        isnan(x) -> bool
        
        Return True if x is a NaN (not a number), and False otherwise.
    
    ldexp(...)
        ldexp(x, i)
        
        Return x * (2**i).
    
    lgamma(...)
        lgamma(x)
        
        Natural logarithm of absolute value of Gamma function at x.
    
    log(...)
        log(x[, base])
        
        Return the logarithm of x to the given base.
        If the base not specified, returns the natural logarithm (base e) of x.
    
    log10(...)
        log10(x)
        
        Return the base 10 logarithm of x.
    
    log1p(...)
        log1p(x)
        
        Return the natural logarithm of 1+x (base e).
        The result is computed in a way which is accurate for x near zero.
    
    log2(...)
        log2(x)
        
        Return the base 2 logarithm of x.
    
    modf(...)
        modf(x)
        
        Return the fractional and integer parts of x.  Both results carry the sign
        of x and are floats.
    
    pow(...)
        pow(x, y)
        
        Return x**y (x to the power of y).
    
    radians(...)
        radians(x)
        
        Convert angle x from degrees to radians.
    
    sin(...)
        sin(x)
        
        Return the sine of x (measured in radians).
    
    sinh(...)
        sinh(x)
        
        Return the hyperbolic sine of x.
    
    sqrt(...)
        sqrt(x)
        
        Return the square root of x.
    
    tan(...)
        tan(x)
        
        Return the tangent of x (measured in radians).
    
    tanh(...)
        tanh(x)
        
        Return the hyperbolic tangent of x.
    
    trunc(...)
        trunc(x:Real) -> Integral
        
        Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.

DATA
    e = 2.718281828459045
    inf = inf
    nan = nan
    pi = 3.141592653589793
    tau = 6.283185307179586

FILE
    (built-in)



In [ ]:
import statistics as stats
stat.mean([11,2])
Команды для обновления всех либ conda update --all Для установки: conda install seaborn Если не найдено либ: pip install seaborn
stackoverflow.com сайт для того, чтобы задавать вопросы https://stackoverflow.com/help/how-to-ask #как спрашивать хорошие вопросы

2. Массивы

list

Список представляет собой последовательность элементов, пронумерованных от 0, как символы в строке. Список можно задать перечислением элементов списка в квадратных скобках.

In [12]:
saled_goods_count = [33450, 34010, 33990, 33200]
print (saled_goods_count)
print (type(saled_goods_count))


[33450, 34010, 33990, 33200]
<class 'list'>

In [2]:
income = ['Высокий', 'Средний', 'Высокий']
names = ['Элеонора Михайловна', 'Иван Иванович', 'Михаил Абрамович']

print (income)
print (names)


['Высокий', 'Средний', 'Высокий']
['Элеонора Михайловна', 'Иван Иванович', 'Михаил Абрамович']

In [5]:
rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']
print(rainbow[0])


Red

In [6]:
rainbow[0] = 'красный'
print('Выведем радугу')
for i in range(len(rainbow)):
    print(rainbow[i])


Выведем радугу
красный
Orange
Yellow
Green
Blue
Indigo
Violet

In [7]:
rainbow[1]


Out[7]:
'Orange'

In [8]:
for i in range(len(rainbow)):
    print(rainbow[i])


красный
Orange
Yellow
Green
Blue
Indigo
Violet

In [9]:
rainbow[0:3]


Out[9]:
['красный', 'Orange', 'Yellow']

[X:Y]. X – начало среза, а Y – окончание. Символ с номером Y в срез не входит. По умолчанию первый индекс равен 0, а второй - длине строки.


In [10]:
rainbow[1:]


Out[10]:
['Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

можно задать шаг, с которым нужно извлекать срез


In [ ]:


In [36]:
rainbow.append('Light Blue')
print (rainbow)


['красный', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet', 'Light Blue']

In [41]:
rainbow.pop()


Out[41]:
'Indigo'

In [49]:
rainbow


Out[49]:
['красный', 'Orange', 'Yellow', 'Green', 1]

In [44]:
rainbow.append(1)

In [46]:
1 in rainbow


Out[46]:
True

In [50]:
del rainbow[-2]

In [51]:
rainbow


Out[51]:
['красный', 'Orange', 'Yellow', 1]
\' Апостроф (') \" Кавычка (") \n Символ ASCII «перевод строки» (linefeed, LF) \r Символ ASCII «возврат каретки» (carriage return, CR) \t Символ ASCII «табуляция» (tab, TAB)

In [5]:
print ('ee', '\r', 'ad', 'd')


 ad d
Задача. Дан список чисел. Выведите все элементы списка, которые больше предыдущего элемента. Для: 1 5 2 4 3 ответ: 5 4
Задача. В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка. Для: 3 4 5 2 1 ответ: 3 4 1 2 5

Двухмерные массивы


In [67]:
a = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
for row in a:
    for elem in row:
        print(elem, end=' ')
    print()


1 2 3 4 
5 6 
7 8 9 

In [68]:
a[2]


Out[68]:
[7, 8, 9]

In [73]:
arr = [[1, 2, 3, 4], [5, 6], [7, 8, 9]]
s = 0
for i in range(len(arr)):
    for j in range(len(arr[i])):
        s += arr[i][j]
print(s)


45

Задача. Найти среднее в каждой строке двухмерного массива arr


In [12]:
str = 'textA'

In [13]:
str[1]


Out[13]:
'e'

In [14]:
str[1:]


Out[14]:
'extA'

In [22]:
str[0:5:2] # c шагом среза


Out[22]:
'txA'

In [17]:
str[::-1]


Out[17]:
'Atxet'

In [57]:
str.lower()


Out[57]:
'text'

In [50]:
[x**2 for x in range(1,5)]


Out[50]:
[1, 4, 9, 16]

In [51]:
def pow2(x):
    return x**2
list(map(pow2, range(1,5)))


Out[51]:
[1, 4, 9, 16]

In [52]:
list(map(lambda x: x**2, range(1,5)))


Out[52]:
[1, 4, 9, 16]

In [100]:
map(lambda x: x**2, range(1,5))


Out[100]:
<map at 0x4f56358>

Базовые функция по тексту


In [26]:
# Литералы строк
S = 'str'; S = "str"; S = '''str'''; S = """str"""
# Экранированные последовательности
S = "s\np\ta\nbbb"
# Неформатированные строки (подавляют экранирование)
S = r"C:\temp\new"
# Строка байтов
S = b"byte"
# Конкатенация (сложение строк)
S + S
# Повторение строки
S * 3
# Обращение по индексу
i = 1
S[i]
# Извлечение среза
j = 2; step = 1;
S[i:j:step]
# Длина строки
len(S)
# Поиск подстроки в строке. Возвращает номер первого вхождения или -1
S.find(str, [start],[end])
# Поиск подстроки в строке. Возвращает номер последнего вхождения или -1
S.rfind(str, [start],[end])
# Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError
S.index(str, [start],[end])
# Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError
S.rindex(str, [start],[end])
# Замена шаблона
S.replace(шаблон, замена)
# Разбиение строки по разделителю
S.split(символ)
# Состоит ли строка из цифр
S.isdigit()
# Состоит ли строка из букв
S.isalpha()
# Состоит ли строка из цифр или букв
S.isalnum()
# Состоит ли строка из символов в нижнем регистре
S.islower()
# Состоит ли строка из символов в верхнем регистре
S.isupper()
# Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы ('\f'), "новая строка" ('\n'), "перевод каретки" ('\r'), "горизонтальная табуляция" ('\t') и "вертикальная табуляция" ('\v'))
S.isspace()
# Начинаются ли слова в строке с заглавной буквы
S.istitle()
# Преобразование строки к верхнему регистру
S.upper()
# Преобразование строки к нижнему регистру
S.lower()
# Начинается ли строка S с шаблона str
S.startswith(str)
# Заканчивается ли строка S шаблоном str
S.endswith(str)
# Сборка строки из списка с разделителем S
S.join(список)
# Символ в его код ASCII
ord(символ)
# Код ASCII в символ
chr(число)
# Переводит первый символ строки в верхний регистр, а все остальные в нижний
S.capitalize()
# Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию)
S.center(width, [fill])
# Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию)
S.count(str, [start],[end])
# Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам
S.expandtabs([tabsize])
# Удаление пробельных символов в начале строки
S.lstrip([chars])
# Удаление пробельных символов в конце строки
S.rstrip([chars])
# Удаление пробельных символов в начале и в конце строки
S.strip([chars])
# Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки
S.partition(шаблон)
# Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку
S.rpartition(sep)
# Переводит символы нижнего регистра в верхний, а верхнего – в нижний
S.swapcase()
# Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний
S.title()
# Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями
S.zfill(width)
# Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar
S.ljust(width, fillchar=" ")
# Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar
S.rjust(width, fillchar=" ")


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-26-877166b5236e> in <module>()
     20 len(S)
     21 # Поиск подстроки в строке. Возвращает номер первого вхождения или -1
---> 22 S.find(str, [start],[end])
     23 # Поиск подстроки в строке. Возвращает номер последнего вхождения или -1
     24 S.rfind(str, [start],[end])

NameError: name 'start' is not defined

In [28]:
#Задача. Есть ссылка: 
str = 'ftp://dl.dropbox.com/u/7334460/Magick_py/py_table.pdf'
# Необходимо получить название файла без расширения - py_table